To protect against unauthorized copying and use of software applications, many software vendors utilize some form of product activation procedure. In general, product activation (sometimes referred to as software activation) involves a procedure for verifying the authenticity of a software application, and ensuring that the software application is used within the scope of the End-User License Agreement (EULA). In a typical product activation procedure, a software application performs a hash operation to generate a hash of an identifier (ID) specific to a product's license (e.g., a product key) and a hardware serial number, identifying the particular computer or device on which the software application is to be utilized. The resulting hash, which is commonly referred to as an installation ID or a product activation ID, is then sent to a software vendor's license manager to verify the authenticity of the product key, and in some instances, to ensure that the product key is not being used simultaneously for multiple installations on multiple computers or devices. Of course, a variety of alternative product activation procedures exist. As described below, one problem with conventional license managers and product activation procedures is that they are designed to operate only with fully-executable, stand-alone software applications, and generally do not support add-on software components.
Many software applications are designed with a view to allowing additional functionality to be realized via one or more add-on software components. For example, web browser applications frequently utilize add-on components to enable the presentation or play back of various audio and video formats. Many video game applications utilize add-on components to provide additional content, such as advanced or customized levels of play, and/or special characters or background scenes. Certain graphics editing programs, such as Adobe Photoshop® from Adobe Systems Incorporated of San Jose, Calif., utilize add-on components to provide support for different graphics file formats, and to provide certain graphic and image processing functions. In some cases, certain add-on components are designed to operate with more than one application in a suite of applications. In many instances, add-on software components are not subject to EULA's and therefore no product activation procedure is necessary before an add-on software component can be utilized. However, because add-on software components are generally dependent upon a host application, in practice, the use of an add-on software component is typically dependent upon a host application being properly installed, licensed and activated.
For example, in FIG. 1, a functional block diagram of the modules involved in a conventional software activation scheme, used to enforce the EULA of a host application, is shown. In this example, the add-on software components are not subject to their own EULA. Instead, the use of the add-on software components is subject to a host application being properly installed, licensed and activated. Accordingly, each add-on software component will operate properly only if the individual host applications are properly installed, licensed and activated. In the example presented in FIG. 1, a license server 10 is shown to include a license manager module 12 and a database 14 of serial numbers and/or product keys. In addition, two applications and four add-on software components—applications A and B, and add-ons W, X, Y and Z—are shown to be installed on a network-connected computer 16. Each host application (e.g., applications A and B) is assigned its own serial number or product key, which is communicated in a licensing call 18 (e.g., at activation and/or execution time) from a client-side license module 20 to the license manager module 12 at the license server 10, where the serial number or product key is verified. Because the add-on software components are not individually licensed and the use of the add-on components is dependent only upon a host application being properly installed and activated, the software vendor has little control over how and when the add-on software components are utilized.